//package com.test.util;
//
//import jdk.nashorn.internal.parser.JSONParser;
//import org.apache.commons.net.util.Base64;
//
//import javax.crypto.Cipher;
//import javax.crypto.KeyGenerator;
//import javax.crypto.SecretKey;
//import javax.crypto.spec.SecretKeySpec;
//import java.net.URLEncoder;
//import java.security.SecureRandom;
//
///**
// *
// * @author lxy
// * @date 2017/11/7
// */
//public class AesUtil {
//    private static final int BYTE_LENGTH = 128;
//
//
//    public static byte[] encrypt(byte[] content, String key) throws AesException {
//        try {
//            KeyGenerator kgen = KeyGenerator.getInstance("AES");
//            kgen.init(BYTE_LENGTH, new SecureRandom(key.getBytes()));
//
//            SecretKey secretKey = kgen.generateKey();
//            byte[] encodeFormat = secretKey.getEncoded();
//
//            SecretKeySpec secretKeySpec = new SecretKeySpec(encodeFormat, "AES");
//
//            Cipher cipher = Cipher.getInstance("AES");
//            cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
//
//            // 正式执行加密操作
//            return cipher.doFinal(content);
//
//        } catch (Throwable e) {
//            throw new AesException(e);
//        }
//    }
//
//
//    public static byte[] decrypt(byte[] content, String key) throws AesException {
//
//        try {
//            KeyGenerator kgen = KeyGenerator.getInstance("AES");
//
//            kgen.init(BYTE_LENGTH, new SecureRandom(key.getBytes()));
//            SecretKey secretKey = kgen.generateKey();
//            byte[] encodeFormat = secretKey.getEncoded();
//            SecretKeySpec secretKeySpec = new SecretKeySpec(encodeFormat, "AES");
//            // Cipher对象实际完成加密操作
//            Cipher cipher = Cipher.getInstance("AES");
//            // 用密匙初始化Cipher对象
//            cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
//            // 正式执行解密操作
//            return cipher.doFinal(content);
//        } catch (Throwable e) {
//            throw new AesException(e);
//        }
//
//    }
//
//
//    static class AesException extends RuntimeException {
//        public AesException() {
//            super();
//        }
//
//
//        public AesException(String msg) {
//            super(msg);
//        }
//
//        public AesException(String msg, Throwable throwable) {
//            super(msg, throwable);
//        }
//
//        public AesException(Throwable throwable) {
//            super(throwable);
//        }
//
//        public AesException(String message, Throwable cause,
//                            boolean enableSuppression,
//                            boolean writableStackTrace) {
//            super(message, cause, enableSuppression, writableStackTrace);
//        }
//    }
//
//    public static void main(String[] args) throws Exception {
//        byte[] content = "test".getBytes("UTF-8");
//        String key = "438o8434383497493048";
//        System.out.println("加密前：" + new String(content));
//
//        byte[] resultBytes = encrypt(content, key);
//
//        String resultStr = Base64.encodeBase64String(resultBytes);
//        System.out.println("加密后：" + resultStr);
//
//// 解密
//        byte[] deResult = Base64.decodeBase64(resultStr.getBytes("UTF-8"));
//        byte[] result = decrypt(deResult, key);
//
//        System.out.println("\n解密后：" + new String(result, "UTF-8"));
//
//    }
//
//
//    public static void test() throws Exception{
//
//        String appId = "test";
//        String securityKey = "f910d7efd24a4a38a12a4c1b2f8072ce";
//        String[] strs = {"1111"};
//        String postStr = JSONParser.toString(strs);
//        String timestamp = System.currentTimeMillis() + "";
//        String key = securityKey  + "&" + timestamp;
//        String aclPostStr = postStr;
//        if (aclPostStr.length() > 64) {
//            aclPostStr=aclPostStr.substring(0, 64);
//        }
//        byte[] aclAes = AesUtil.encrypt((appId + "&" + aclPostStr).getBytes("UTF-8"), key);
//        String acl = Base64.encodeBase64String(aclAes);
//        byte[] paramAes = AesUtil.encrypt(postStr.getBytes("UTF-8"), key);
//        byte[] param = Base64.encode(paramAes);
//        String params = URLEncoder.encode(new String(param), "UTF-8");
//        String url ="http://10.8.3.49:7020/cts-sync/api/2.0/invoke?"+"acl="
//                + URLEncoder.encode(acl,"UTF-8") +"&timestamp=" +timestamp;
//
//
//    }
//
//
//}
